'''导入库：导入 gpiozero 库中的 Button 类用于按键控制，time 库用于程序休眠。
初始化按键：定义按键连接的 GPIO 引脚号，使用 Button 类初始化按键对象。
定义回调函数：
on_button_pressed：当按键按下时，该函数会被调用，打印按键按下信息。
on_button_released：当按键释放时，该函数会被调用，打印按键释放信息。
绑定事件：使用 button.when_pressed 和 button.when_released 分别将回调函数绑定到按键按下和释放事件。
主循环：程序进入无限循环，使用 time.sleep(0.1) 让程序休眠 0.1 秒，减少 CPU 占用，等待按键事件触发。
异常处理：使用 try-except-finally 结构捕获 KeyboardInterrupt 异常（即用户按下 Ctrl+C），程序终止时关闭按键资源。'''
from gpiozero import Button
import time

# 定义按键连接的 GPIO 引脚，这里假设按键连接到 GPIO 24
BUTTON_PIN = 24
# 初始化按键
button = Button(BUTTON_PIN)

def on_button_pressed():
    """
    按键按下时触发的回调函数，打印按键按下信息。
    """
    print("按键已按下")

def on_button_released():
    """
    按键释放时触发的回调函数，打印按键释放信息。
    """
    print("按键已释放")

# 绑定按键按下和释放事件的回调函数
button.when_pressed = on_button_pressed
button.when_released = on_button_released

try:
    print("开始监测按键状态，按 Ctrl+C 退出...")
    while True:
        # 程序持续运行，等待事件触发
        time.sleep(0.1)  
except KeyboardInterrupt:
    print("程序终止")
finally:
    # 关闭按键资源
    button.close()  
